home *** CD-ROM | disk | FTP | other *** search
- #include "screen.h"
-
- #define mApple 1
- #define mFile 2
- #define mFont 3
- #define mStyle 4
- #define mMinutes 5
-
- extern short font;
- extern short style;
- extern unsigned long IDLETICKS;
-
- extern struct screen *screenlist;
-
- extern void MBarRestore(void);
- extern void WritePrefs(void);
-
- void createmenus(void) {
- unsigned char minutesItem[] = "\p 1";
- Handle theMenuBar;
- MenuHandle theMenu;
- long number;
-
- theMenuBar = GetNewMBar(128);
- SetMenuBar(theMenuBar);
-
- AddResMenu(GetMHandle(mApple),'DRVR');
-
-
- AddResMenu(GetMHandle(mFont),'FONT'); // will also get FONDs, see I.M. IV
-
-
- theMenu = GetMHandle(mMinutes);
- for (number=1; number<30; number++) {
- NumToString(number,minutesItem);
- AppendMenu(theMenu,minutesItem);
- };
- CheckItem(theMenu,IDLETICKS/60/60,TRUE);
-
- DrawMenuBar();
- return;
- }
-
- void domenu(long result) {
- short theItem;
- short theMenu;
- Str255 name;
- short temp;
- WindowPtr myWindow;
- struct screen *screen;
-
- theItem = LoWord(result); /* gets item number */
- theMenu = HiWord(result); /* gets menu number */
-
- switch(theMenu) {
- static short checkedFont=0;
- case mApple:
- GetPort(&myWindow);
- switch (theItem) {
- case 1:
- Alert(128,(ProcPtr)nil);
- break;
- case 2:
- for (screen=screenlist; screen; screen=screen->next)
- simulateidle(screen);
- break;
- default:
- GetItem(GetMHandle(mApple),theItem,name);
- OpenDeskAcc(name);
- SetPort(myWindow);
- };
- break;
- case mFile:
- MBarRestore();
- WritePrefs();
- ExitToShell(); // Quit is the only thing in the File menu
- break;
- case mFont:
- CheckItem(GetMHandle(mFont),checkedFont,FALSE);
- GetItem(GetMHandle(mFont),theItem,name);
- CheckItem(GetMHandle(mFont),theItem,TRUE);
- checkedFont = theItem;
- GetFNum((ConstStr255Param)name,&font);
- break;
- case mStyle:
- temp = 1<<theItem-1;
- if (style & temp) { // style already active, turn it off
- CheckItem(GetMHandle(mStyle),theItem,FALSE);
- style -= temp;
- }
- else {
- CheckItem(GetMHandle(mStyle),theItem,TRUE);
- style += temp;
- };
- break;
- case mMinutes:
- CheckItem(GetMHandle(mMinutes),(IDLETICKS/60/60),FALSE);
- IDLETICKS = (theItem * 60 * 60);
- CheckItem(GetMHandle(mMinutes),theItem,TRUE);
- break;
- default:
- break;
- };
-
- HiliteMenu(0);
- return;
- }
-
-
- void doevent(EventRecord event) {
- WindowPtr myWindow;
-
- switch(event.what) {
- case mouseDown:
- switch (FindWindow(event.where,&myWindow)) {
- case inMenuBar:
- domenu(MenuSelect(event.where));
- break;
- case inSysWindow:
- SystemClick(&event,myWindow);
- break;
- default:
- break;
- };
- break;
- case keyDown:
- case autoKey:
- if (event.modifiers & cmdKey)
- domenu(MenuKey(event.message & charCodeMask));
- break;
- default:
- break;
- };
- return;
- }
-